home *** CD-ROM | disk | FTP | other *** search
- /*
- IC Component.h
-
- Header file for IC Component.c
-
- */
-
- #pragma once
-
- #ifndef __H_ICComponent__
- #define __H_ICComponent__
-
- #include "IC Types.h"
- #include "IC Resource API.h"
-
- #define kICdefault_file_name_ID 1024 // id of resource in component res file
- #define kICdefault_prompt_ID 1025 // id of resource in component res file
-
- typedef struct GlobalsStruct GlobalsRecord,* GlobalsPtr,** GlobalsHandle;
-
- #if defined(powerc) || defined (__powerc)
- #pragma options align=mac68k
- #endif
- struct GlobalsStruct {
- ComponentInstance self;
- ComponentInstance current_target;
- ICRRecord inst;
- };
- #if defined(powerc) || defined(__powerc)
- #pragma options align=reset
- #endif
-
- /*
- The following enumeration creates many procinfo values for each of the
- interface routines called through the component manager.
- */
- enum {
- uppICAddMapEntryProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICBeginProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICPerm))),
- uppICCanDoProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(short))),
- uppICChooseConfigProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle))),
- uppICChooseNewConfigProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle))),
- uppICCloseProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ComponentInstance))),
- uppICCountMapEntriesProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long*))),
- uppICCountPrefProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(long*))),
- uppICDefaultFileNameProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr))),
- uppICDeleteMapEntryProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long))),
- uppICDeletePrefProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr))),
- uppICEditPreferencesProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr))),
- uppICEndProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle))),
- uppICFindConfigFileProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(short)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICDirSpecArrayPtr))),
- uppICFindPrefHandleProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICAttr*)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Handle))),
- uppICFindUserConfigFileProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICDirSpec*))),
- uppICForceInsideProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICPerm)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Boolean*))),
- uppICGeneralFindConfigFileProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Boolean)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Boolean)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(short)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(ICDirSpecArrayPtr))),
- uppICGetConfigReferenceProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICConfigRefHandle))),
- uppICGetConfigNameProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Boolean)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(StringPtr))),
- uppICGetIndMapEntryProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(long*)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICGetIndPrefProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(StringPtr))),
- uppICGetMapEntryProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICGetPermProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICPerm*))),
- uppICGetPrefProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICAttr*)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(long*))),
- uppICGetPrefHandleProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICAttr*)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Handle*))),
- uppICGetSeedProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(long*))),
- uppICLaunchURLProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(long*)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(long*))),
- uppICMapEntriesFilenameProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICMapEntriesTypeCreatorProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(OSType)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(OSType)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICMapFilenameProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICMapTypeCreatorProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(OSType)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(OSType)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICOpenProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ComponentInstance))),
- uppICParseURLProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(long*)))
- | STACK_ROUTINE_PARAMETER(6,SIZE_CODE(sizeof(long*)))
- | STACK_ROUTINE_PARAMETER(7,SIZE_CODE(sizeof(Handle))),
- uppICReleaseInsideProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Boolean))),
- uppICSetConfigReferenceProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ICConfigRefHandle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long))),
- uppICSetMapEntryProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(Handle)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(ICMapEntry*))),
- uppICSetPrefProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICAttr)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(5,SIZE_CODE(sizeof(long))),
- uppICSetPrefHandleProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(StringPtr)))
- | STACK_ROUTINE_PARAMETER(3,SIZE_CODE(sizeof(ICAttr)))
- | STACK_ROUTINE_PARAMETER(4,SIZE_CODE(sizeof(Handle))),
- uppICSpecifyConfigFileProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(FSSpecPtr))),
- uppICStartProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(OSType))),
- uppICStopProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ICError)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle))),
- uppICTargetProcInfo=kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
- | STACK_ROUTINE_PARAMETER(1,SIZE_CODE(sizeof(GlobalsHandle)))
- | STACK_ROUTINE_PARAMETER(2,SIZE_CODE(sizeof(ComponentInstance)))
- };
-
- #define BuildNewProc(routine,procinfo) \
- (ComponentFunctionUPP)NewRoutineDescriptor((ProcPtr)(routine),(procinfo),GetCurrentISA())
-
- #ifdef __cplusplus
- extern "C" }{
- #endif
-
- // local prototypes
- ICError GetStringFromResourceFile(GlobalsHandle globals,short id,StringPtr name);
- pascal ComponentResult ICCICanDo(GlobalsHandle globals,short selector);
- pascal ComponentResult ICCIOpen(GlobalsHandle globals,ComponentInstance self);
- pascal ComponentResult ICCIClose(GlobalsHandle globals,ComponentInstance self);
- pascal ComponentResult ICCITarget(GlobalsHandle globals,ComponentInstance new_target);
- pascal ICError ICCIStart(GlobalsHandle globals,OSType creator);
- pascal ICError ICCIForceInside(GlobalsHandle globals,ICPerm perm,Boolean* force_info);
- pascal ICError ICCIReleaseInside(GlobalsHandle globals,Boolean force_info);
- pascal ICError ICCIGetPref(GlobalsHandle globals,StringPtr key,ICAttr* attr,Ptr buf,long* size);
- pascal ICError ICCISetPref(GlobalsHandle globals,StringPtr key,ICAttr attr,Ptr buf,long size);
- pascal ICError ICCIFindPrefHandle(GlobalsHandle globals,StringPtr key,ICAttr* attr,Handle prefh);
- pascal ICError ICCIGetPrefHandle(GlobalsHandle globals,StringPtr key,ICAttr* attr,Handle* prefh);
- pascal ICError ICCISetPrefHandle(GlobalsHandle globals,StringPtr key,ICAttr attr,Handle prefh);
- pascal ICError ICCIDefaultFileName(GlobalsHandle globals,StringPtr name);
- pascal ICError ICCILaunchURL(GlobalsHandle globals,StringPtr hint,Ptr data,long len,long* selStart,long* selEnd);
- pascal ICError ICCIMapFilename(GlobalsHandle globals,StringPtr filename,ICMapEntry* entry);
- pascal ICError ICCIMapTypeCreator(GlobalsHandle globals,OSType fType,OSType fCreator,StringPtr filename,ICMapEntry* entry);
- pascal ICError ICCIStop(GlobalsHandle gl